$(function(){
    //整个页面的功能已经做好!!!
    var delStatus,departmentId,name,password,roleId,username,treeNodes,initRoleId;

    //下面这封装好的函数是获取URL中参数值的方法:
    (function($){
        $.getUrlParam = function(name)
        {
            var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
            var r = window.location.search.substr(1).match(reg);
            if (r!=null) return unescape(r[2]); return null;
        }
    })(jQuery);

    //为页面初始化    部门列表    已经做好
    function departmentList()
    {
        $.ajax({
            async:false,
            cache:false,
            type:'post',
            headers: {"Accept-CMS-Token":token},
            url:getdepartment,
            dataType:'json',
            success:function (data){
                if( data.resultCode == 200 )
                {
                    var value = data.value;
                    for( var i=0;i < value.length;i++ )
                    {
                        $('.add-department').append('<option value="'+value[i].id+'">'+value[i].name+'</option>');
                    };
                }
                else if(data.resultCode == 515)
                {
                    reLogin();
                }
                else
                {
                    // alert('接口非200,非515')
                };
                console.log('加载部门列表接口请求成功!!!!')
            },
            error:function(){
                console.log('加载部门列表接口请求失败')
            },
        });
    };
    departmentList();

    // 为页面初始化  角色列表     已经做好
    function jueseList()
    {
        $.ajax({
            async:false,
            cache:false,
            type:'get',
            headers: {"Accept-CMS-Token":token},
            url:getrolelist,
            dataType:'json',
            success:function (data){
                if(data.resultCode == 200)
                {
                    var jueseList = data.value;
                    for( var i=0;i<jueseList.length;i++ )
                    {
                        $('.jueseList').append('<option value="'+jueseList[i].id+'">'+jueseList[i].roleName+'</option>');
                    };
                }
                else if(data.resultCode == 515)
                {
                    reLogin()
                }
                else
                {
                    // alert('接口非200,非515')
                };
                console.log('角色列表接口请求成功!!!!')
            },
            error:function(){
                console.log('角色列表接口请求失败')
            },
        });
    };
    jueseList();

    //为页面初始化    角色列表默认第一个被选中
    // $('.jueseList').children('option').eq(2).attr('selected','selected');
    // initRoleId = $('.jueseList').children('option').eq(2).val();

    //获取从上一个页面传过来的参数;   已经做好
    var userId = $.getUrlParam('userId');

    // 页面初始化    根据id查看账户相关的一些信息 已经做好
    function userList(userId)
    {
        $.ajax({
            async:false,
            cache:false,
            type:'post',
            headers: {"Accept-CMS-Token":token},
            url:getuserinfo,
            data:{
                userId:userId,
            },
            dataType:'json',
            success:function (data){
                if(data.resultCode == 200)
                {
                    var userinfo = data.value.userinfo;
                    delStatus = userinfo.delStatus;
                    roleId = data.value.roleId;
                    $('input[name = username]').val(userinfo.username);
                    $('input[name = name]').val(userinfo.name);
                    // $('input[name = password]').val(userinfo.password);
                    //设置选中的部门;
                    var len1 = $('.add-department option').length;
                    for( var i=0;i< len1;i++ )
                    {
                        if( $('.add-department option').eq(i).val() == userinfo.departmentId )
                        {
                            $('.add-department option').eq(i).attr('selected','selected');
                        };
                    };
                    //设置选中的角色
                    var len2 = $('.jueseList option').length;
                    for( var j=0;j< len2;j++)
                    {
                        if( $('.jueseList option').eq(j).val() == data.value.roleId )
                        {
                            $('.jueseList option').eq(j).attr('selected','selected');
                        }
                    };
                    // console.log(data)//这个地方有问题....跟角色管理那个地方的id一致...
                }
                else if(data.resultCode == 515)
                {
                    reLogin();
                }
                else
                {
                    alert('请求账户信息出错!!')
                };
                console.log('禁用还是启用接口请求成功!!!!')
            },
            error:function(){
                console.log('禁用还是启用接口请求失败')
            },
        });
    };
    userList(userId);

    //页面初始化     根据id查看角色权限      有关ztree
    // 配置ztree  已经做好
    var setting = {
        check : {
            enable : true,
            chkboxType: {"Y" : "ps", "N" : "ps"}
        },
        data : {
            simpleData : {
                enable : true,
                idKey : "id",
                pIdKey : "pId",
                rootPId : 0
            }
        }
    };

    //掉这个接口的原因是为了和下一个作比较    有关ztree
    $.ajax({
        async:false,//这一步在这个页面当中是关键部分;千万不能去了;
        cache:false,
        type:'get',
        headers: {"Accept-CMS-Token":token},
        url:permissionlist,
        dataType:'json',
        success:function(result){
            if(result.resultCode == 200)
            {
                init=result.value;
            }
            else if(result.resultCode == 515)
            {
                reLogin()
            }
            else
            {
                // alert('接口非200,非515')
            }
            console.log('加载角色权限接口请求成功!!!!');
        },
        error:function (){
            console.log('加载角色权限接口获取失败!!');
        }
    });

    // 有关ztree  与编辑角色页面的js差不多;  已经做好
    function onloadztree(roleId)
    {
        $.ajax({
            type:'get',
            async:false,//这一步在这个页面当中是关键部分;千万不能去了;
            cache:false,
            headers: {"Accept-CMS-Token":token},
            url:getroleone,
            async : false,//是否异步
            cache:false,
            data:{
                roleId:roleId,
            },
            dataType:'json',
            success:function(result){
                //将这个角色拥有的权限都从后台填到前端的页面当中;将ztree异步取值返回到页面当中;
                if( result.resultCode == 200 )
                {
                    var dataId = result.value.permissionlist;//将这条数据都取出来,,,,
                    var arr2 = [];//取出来后台返回给我的那些被勾选的id;
                    for(var x=0;x<dataId.length;x++)
                    {
                        arr2.push( dataId[x].permissionId );
                    };
                    for( var i=0;i<init.length;i++ )
                    {
                        for( var j=0;j<arr2.length;j++ )
                        {
                            if( init[i].id === arr2[j] )
                            {
                                init[i]['checked'] = true;//赋值成功!
                            };
                        };
                    };
                    treeNodes = init;//将后台返回的数据都整合到页面当中
                }
                else if(result.resultCode == 515)
                {
                    reLogin()
                }
                else
                {
                    // alert('接口非200,非515')
                };
                console.log('根据id查看角色接口请求成功!!!!');
            },
            error:function (){
                console.log('根据id查看角色接口失败!!');
            }
        });
        var t = $("#treeDemo");
        t = $.fn.zTree.init(t, setting, treeNodes);
    };

    // 为页面初始化ztree
    onloadztree(roleId);
    $('.jueseList').change(function(){
        var zhi = $(this).val();//获取选中的;
        initZtree();
        clearZTree();
        onloadztree( zhi );
    });

    function clearZTree()
    {
        for( var i=0;i<init.length;i++ )
        {
            init[i]['checked'] = false;//赋值成功!
        };
        treeNodes = init;//将后台返回的数据都整合到页面当中
    };

    //初始化ztree,,,,每次在加载新的数据之前都要初始化权限列表,然后在填数据;
    function initZtree()
    {
        $.ajax({
            async:false,
            cache:false,
            type:'get',
            headers: {"Accept-CMS-Token":token},
            url:permissionlist,
            dataType:'json',
            success:function(result){
                if(result.resultCode == 200)
                {
                    useTo=result.value;//获取初始化的权限列表;    每次都需要把上一次勾选的都清空,进行一下初始化,在来加载新的;
                    var len = useTo.length;
                    for( var i=0;i<len;i++ )
                    {
                        useTo[i]['checked'] = false;
                    };
                }
                else if(result.resultCode == 515)
                {
                    reLogin()
                }
                else
                {
                    // alert('接口非200,非515')
                }
                console.log('加载角色权限接口请求成功!!!!');
            },
            error:function (){
                console.log('加载角色权限接口获取失败!!');
            }
        });
        var t = $("#treeDemo");
        t = $.fn.zTree.init(t, setting, useTo);
    };
    //点击保存,将前端的信息收集好之后就传递到后台;  已经做好;
    $('.add-account-save').click(function(){
        departmentId = $('.add-department').children('option:selected').val();
        name = $('input[name = name]').val();
        password = $('input[name = password]').val();
        roleId = $('.jueseList').children('option:selected').val();
        username = $('input[name = username]').val();
        if(departmentId =='' || name =='' || password =='' || roleId == '' || username == '')
        {
            if( username == '' )
            {
                $('.noEmpty').eq(0).show();
                return false;
            }
            else
            {
                $('.noEmpty').eq(0).hide();
            };
            if( password == '' )
            {
                $('.noEmpty').eq(1).show();
                return false;
            }
            else
            {
                $('.noEmpty').eq(1).hide();
            };
            if( name == '' )
            {
                $('.noEmpty').eq(2).show();
                return false;
            }
            else
            {
                $('.noEmpty').eq(2).hide();
            };
            if( departmentId == '' )
            {
                $('.noEmpty').eq(3).show();
                return false;
            }
            else
            {
                $('.noEmpty').eq(3).hide();
            };
            if( roleId == '' )
            {
                $('.noEmpty').eq(4).show();
                return false;
            }
            else
            {
                $('.noEmpty').eq(4).hide();
            };
        }
        else
        {
            $('.noEmpty').hide();

            $.ajax({
                async:false,
                cache:false,
                type:'post',
                headers: {"Accept-CMS-Token":token},
                url:saveorupdate,
                data:{
                    delStatus:delStatus,
                    departmentId:departmentId,
                    name:name,
                    password:password,
                    roleId:roleId,
                    userId:userId,
                    username:username
                },
                dataType:'json',
                success:function (data){
                    if( data.resultCode == 200 )
                    {
                        alert('保存成功!');
                        window.location.href = account_admin + '?id=' + $.getUrlParam('id');
                    }
                    else if(data.resultCode == 515)
                    {
                        reLogin()
                    }
                    else
                    {
                        // alert('接口非200,非515!');
                    };
                    console.log('新增账户接口请求成功!!!!')
                },
                error:function(){
                    console.log('新增账户接口请求失败')
                },
            });

        };

    });
    //表单提交以后要跳转的目标地址;       已经做好

    // 当后台状态码是515时,让客户重新登录
    function reLogin()
    {
        alert('登录超时,请重新登录!');
        localStorage.clear();
        window.location.href = login_jump;
    }

    // 为edit_account这个页面little下的nav设置id...
    var changeId = $.getUrlParam('id');
    // console.log(changeId);
    $('.back a').attr( 'href','account_admin.html?id='+changeId );
    $('.fanhui').eq(0).children('a').attr( 'href','account_admin.html?id='+changeId );


});



